3.5.1  go vet

这个命令不会帮开发人员写代码,但如果开发人员已经写了一些代码, vet 命令会帮开发人员检测代码的常见错误。让我们看看 vet 捕获哪些类型的错误。

  • Printf 类函数调用时,类型匹配错误的参数。
  • 定义常用的方法时,方法签名的错误。
  • 错误的结构标签。
  • 没有指定字段名的结构字面量。

让我们看看许多Go开发新手经常犯的一个错误。 fmt.Printf 函数常用来产生格式化输出,不过这个函数要求开发人员记住所有不同的格式化说明符。代码清单3-8中给出的就是一个例子。

代码清单3-8 使用 go vet

01 package main
02
03 import "fmt"
04
05 func main() {
06   fmt.Printf("The quick brown fox jumped over lazy dogs", 3.14)
07 }

这个程序要输出一个浮点数3.14,但是在格式化字符串里并没有对应的格式化参数。如果对这段代码执行 go vet ,会得到如下消息:

go vet main.go
main.go:6: no formatting directive in Printf call

go vet 工具不能让开发者避免严重的逻辑错误,或者避免编写充满小错的代码。不过,正像刚才的实例中展示的那样,这个工具可以很好地捕获一部分常见错误。每次对代码先执行 go vet 再将其签入源代码库是一个很好的习惯。

results matching ""

    No results matching ""